package net.asrsmid.config;

/**
 * public class RsApplication<br><br>
 * The class RsApplication represents a Reporting Services application,
 * which corresponds to a <code>&lt;rs-application&gt;</code> node and
 * contains all its config data 
 * @author Chen WANG
 * @since 15 June 2011
 */
public class RsApplication {
	private String appId;
	private AsRsAuthMode authMode;
	private String defaultUserName;
	private String defaultUserPassword;
	private String nameSpaceUri;
	private String localPart;
	private String wsdlUri;
	private String endpointUri;
	private int poolMinIdle;
	private int poolMaxIdle;
	private int poolMaxActive;
	private int poolMaxWait;
	/*private List<String> reportFileList;
	private Map<String, String> reportList;*/
	
	/**
	 * Constructs a RsApplication with the given application id
	 * @param appId
	 */
	public RsApplication(String appId) {
		this.appId = appId;
	}
	
	/**
	 * Returns the authentication mode used in this Reporting Services application
	 * @return the authMode
	 */
	public AsRsAuthMode getAuthMode() {
		return authMode;
	}
	/**
	 * Sets the authentication mode used in this Reporting Services application
	 * @param authMode the authMode to set
	 */
	public void setAuthMode(AsRsAuthMode authMode) {
		this.authMode = authMode;
	}
	/**
	 * Returns the default username used in this Reporting Services application<br>
	 * The default username will be used only in
	 * <code>BASIC</code> or <code>CUSTOMIZED</code>
	 * authentication mode and only when a username is not provided by user
	 * (Eg. user input in GUI)
	 * @return the defaultUserName
	 */
	public String getDefaultUserName() {
		return defaultUserName;
	}
	/**
	 * sets the default username used in this Reporting Services application<br>
	 * The default username will be used only in
	 * <code>BASIC</code> or <code>CUSTOMIZED</code>
	 * authentication mode and only when a username is not provided by user
	 * (Eg. user input in GUI)
	 * @param defaultUserName the defaultUserName to set
	 */
	public void setDefaultUserName(String defaultUserName) {
		this.defaultUserName = defaultUserName;
	}
	/**
	 * Returns the default password used in this Reporting Services application<br>
	 * The default password will be used only in
	 * <code>BASIC</code> or <code>CUSTOMIZED</code>
	 * authentication mode and only when a password is not provided by user
	 * (Eg. user input in GUI)
	 * @return the defaultUserPassword
	 */
	public String getDefaultUserPassword() {
		return defaultUserPassword;
	}
	/**
	 * Sets the default password used in this Reporting Services application<br>
	 * The default password will be used only in
	 * <code>BASIC</code> or <code>CUSTOMIZED</code>
	 * authentication mode and only when a password is not provided by user
	 * (Eg. user input in GUI)
	 * @param defaultUserPassword the defaultUserPassword to set
	 */
	public void setDefaultUserPassword(String defaultUserPassword) {
		this.defaultUserPassword = defaultUserPassword;
	}
	/**
	 * Returns the name space URI of the web service of this 
	 * Reporting Services application
	 * @return the nameSpaceUri
	 */
	public String getNameSpaceUri() {
		return nameSpaceUri;
	}
	/**
	 * Sets the name space URI of the web service of this 
	 * Reporting Services application
	 * @param nameSpaceUri the nameSpaceUri to set
	 */
	public void setNameSpaceUri(String nameSpaceUri) {
		this.nameSpaceUri = nameSpaceUri;
	}
	/**
	 * Returns the local part of the web service of this 
	 * Reporting Services application
	 * @return the localPart
	 */
	public String getLocalPart() {
		return localPart;
	}
	/**
	 * Sets the local part of the web service of this 
	 * Reporting Services application
	 * @param localPart the localPart to set
	 */
	public void setLocalPart(String localPart) {
		this.localPart = localPart;
	}
	/**
	 * Returns the WDSL URI of the web service of this 
	 * Reporting Services application
	 * @return the wsdlUri
	 */
	public String getWsdlUri() {
		return wsdlUri;
	}
	/**
	 * Sets the WDSL URI of the web service of this 
	 * Reporting Services application
	 * @param wsdlUri the wsdlUri to set
	 */
	public void setWsdlUri(String wsdlUri) {
		this.wsdlUri = wsdlUri;
	}
	/**
	 * Returns the Endpoint URI of the web service of this 
	 * Reporting Services application
	 * @return the endpointUri
	 */
	public String getEndpointUri() {
		return endpointUri;
	}
	/**
	 * Sets the Endpoint URI of the web service of this 
	 * Reporting Services application
	 * @param endpointUri the endpointUri to set
	 */
	public void setEndpointUri(String endpointUri) {
		this.endpointUri = endpointUri;
	}
	/**
	 * Returns minimum idle connection number of the web service proxy pool
	 * used in this Reporting Services application
	 * @return the poolMinIdle
	 */
	public int getPoolMinIdle() {
		return poolMinIdle;
	}
	/**
	 * Sets minimum idle connection number of the web service proxy pool
	 * used in this Reporting Services application
	 * @param poolMinIdle the poolMinIdle to set
	 */
	public void setPoolMinIdle(int poolMinIdle) {
		this.poolMinIdle = poolMinIdle;
	}
	/**
	 * Returns maximum idle connection number of the web service proxy pool
	 * used in this Reporting Services application
	 * @return the poolMaxIdle
	 */
	public int getPoolMaxIdle() {
		return poolMaxIdle;
	}
	/**
	 * Sets maximum idle connection number of the web service proxy pool
	 * used in this Reporting Services application
	 * @param poolMaxIdle the poolMaxIdle to set
	 */
	public void setPoolMaxIdle(int poolMaxIdle) {
		this.poolMaxIdle = poolMaxIdle;
	}
	/**
	 * Returns maximum active connection number of the web service proxy pool
	 * used in this Reporting Services application
	 * @return the poolMaxActive
	 */
	public int getPoolMaxActive() {
		return poolMaxActive;
	}
	/**
	 * Sets maximum active connection number of the web service proxy pool
	 * used in this Reporting Services application
	 * @param poolMaxActive the poolMaxActive to set
	 */
	public void setPoolMaxActive(int poolMaxActive) {
		this.poolMaxActive = poolMaxActive;
	}
	/**
	 * Returns maximum wait time to obtain a proxy from the web service proxy pool
	 * used in this Reporting Services application
	 * @return the poolMaxWait
	 */
	public int getPoolMaxWait() {
		return poolMaxWait;
	}
	/**
	 * sets maximum wait time to obtain a proxy from the web service proxy pool
	 * used in this Reporting Services application
	 * @param poolMaxWait the poolMaxWait to set
	 */
	public void setPoolMaxWait(int poolMaxWait) {
		this.poolMaxWait = poolMaxWait;
	}
	/**
	 * Returns a list of file names in which user defines all the reports served by
	 * this Reporting Services application
	 * @return the reportFileList
	 */
//	public List<String> getReportFileList() {
//		return reportFileList;
//	}
	/**
	 * Sets a list of file names in which user defines all the reports served by
	 * this Reporting Services application
	 * @param reportFileList the reportFileList to set
	 */
//	public void setReportFileList(List<String> reportFileList) {
//		this.reportFileList = reportFileList;
//	}
	/**
	 * @return the reportList
	 */
//	public Map<String, String> getReportList() {
//		return reportList;
//	}
	/**
	 * @param reportList the reportList to set
	 */
//	public void setReportList(Map<String, String> reportList) {
//		this.reportList = reportList;
//	}
	/**
	 * @return the appId
	 */
	public String getAppId() {
		return appId;
	}
	/**
	 * @param appId the appId to set
	 */
	public void setAppId(String appId) {
		this.appId = appId;
	}
}